﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="media.aspx.cs" Inherits="Main.FCKEditor.editor.plugins.media.mediaManager" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Plugin Media Manager dùng cho FCKEditor 2.x được mình viết lại dựa trên nền tảng của Plugin FLVPlayer và chỉ dùng cho ASP.NET 2.0-->
<!-- Author: Dương Vì Phát -->
<!-- Cập nhật lần cuối: Ngày 2-5-2010 -->
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Media Manager</title>
	<script src="media.js" type="text/javascript"></script>
	<style type="text/css">
    	body, td, input, textarea, select, label {font-family: Arial !important; font-size: 12px !important; }
    </style>

	<script type="text/javascript" src="/JWMediaPlayer/swfobject.js"></script>
</head>
<body>
   
    <form id="form1" runat="server" method="post">
       <!-- Cho Phép người dùng Upload hoặc đưa URL của File Mp3, FLV, Mp4 hoặc Link Youtube -->
        <table width="100%" cellpadding="5" cellspacing="0" border="0">
            <tr>
                <td colspan="2" align="center">
                Hiện Website chỉ hỗ trợ các tập tin Media có đuôi .swf, .mp3, .mp4, .flv hoặc Link Youtube
                </td>        
            </tr>
            <tr>
                <td style="height: 34px">
                    Link :
                </td>
                <td style="height: 34px">
                    <input id="txtURL" name="txtURL" type="text" />
                </td>
            </tr>
            <tr>
                <td>
                    Upload :
                </td>
                <td>
                   <asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="btnUpload" runat="server"
                    Text="Upload" OnClick="btnUpload_Click" />
                </td>
            </tr>
            <tr>
                <td>
                    Width :
                </td>
                <td>
                    <input id="txtWidth" name="txtWidth" type="text" />
                </td>
            </tr>
            <tr>
                <td>
                    Height :
                </td>
                <td>
                    <input id="txtHeight" name="txtHeight" type="text" />
                </td>
            </tr>
            <tr>
                <td colspan="2"><input type="button" id="btnPreview" value="Preview" onclick="javascript: Preview()" /></td>
            </tr>
            <tr>
                <td colspan="2">
                    <!-- Preview -->
                    <div id="Preview">
                    </div>
                    <input type="submit" id="submit" name="submit" style="display:none;" />
                </td>
            </tr>
        </table>
    </form>

    <script type="text/javascript">
        var oEditor = window.parent.InnerDialogLoaded() ;
        var FCK		= oEditor.FCK ;
        var url = document.getElementById('txtURL');
        var height = document.getElementById('txtHeight');
        var width = document.getElementById('txtWidth');
        width.value = 400;
        height.value = 300;
        window.parent.SetOkButton( true ) ;
        var space = randomString();
        var isNew = true;
        var oSel = null;
        window.onload = init();

        function MediaPlayer(Src,Height,Width,Space)
        {
            var output = "<div id='" + Space + "_vp' style='width:" + Width + "px; height:" + Height +"px; border:solid 1px #ededed; background-color:#ededd5;'><a href='#'>This Text will be Replaced</a>";
            output += "<div style='display: none;visibility: hidden;width: 0px;height:0px;overflow: hidden;'>width=" + Width + ";height=" + Height + ";url=" +  Src + ";space=" + Space + ";</div>";
            output += "\n<script type='text/javascript'>";
            output += Script(Src,Height,Width,Space);
            output += "\n<\/script>";
            output += "</div>";
            return output;
        }
        function Script(Src,Height,Width,Space)
        {
            var output = "";
            output += "\nvar so= new SWFObject('/JWMediaPlayer/player-viral.swf','ply','" + Width + "','" + Height + "','9','#ffffff');";
            output += "\nso.addParam('allowfullscreen','true');";
            output += "\nso.addParam('allowscriptaccess','always');";
            output += "\nso.addParam('wmode','opaque');";
            output += "\nso.addVariable('file','" +  Src + "');";
            output += "\nso.write('" + Space + "_vp');";
            return output;
        }
        function Preview()
        {
            var output = MediaPlayer(url.value,height.value,width.value,space);
            document.getElementById('Preview').innerHTML = output;
            eval(Script(url.value,height.value,width.value,space));
            
        }
        //Edit, Update
        //Upload
        function Ok()
        {
            //Chưa giới hạn Min Width, Max Width, Min Height, Max Height

            var regExp = /^((http|ftp)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?)?\/([a-zA-Z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*\.(mp3|flv|mp4)?$/;
            if (url.value.match(/youtube/i) == null)
            {
                if (regExp.test(url.value) == false)
                {
                    alert('Ngoại trừ trường hợp là liên kết đến Video Youtube, \nField URL bắt buộc phải tuân thủ mẫu sau: \n\"http://domain-name.domain-extension/folder/file-name.file-extension\" \nBắt đầu bằng http:// hoặc ftp://, \nfile-extension có thể là .mp3, .swf,.mp4,/flv, \nfolder/ có thể có hoặc không có ');
                    return false;
                }
            }
            else {
                if (url.value.match('youtube.com/watch') == null)
                {
                    alert('Link Youtube phải có dạng: \nhttp://www.youtube.com/watch?v=HdUeVAkzEas, trong đó youtube.com/watch phải là chữ thường');
                    return false;
                }
            }
            var W = parseInt(width.value);
            var H = parseInt(height.value);
            if ( W.toString() == 'NaN')
            {
                alert("Chiều rộng Width chỉ được Nhập số và Không được bỏ trống");
                return false;
            }
            if ( H.toString() == 'NaN')
            {
                alert("Chiều cao Height chỉ được Nhập số và Không được bỏ trống");
                return false;
            }
            // Min W, Min H, Max W, Max H
            if (W > 550)
            {
                width.value = 550; 
            }
            if (W < 150)
            {
                width.value = 150;
            }
            if (H > 450)
            {
                heigth.value = 450;
            }
            if (H < 80)
            {
                heigth.value = 80;
            }
            //Build JWPlayer
            var output = "<table><tr><td>";
            output += MediaPlayer(url.value,height.value,width.value,space);
            output += "</td></tr></table>";
            //FCK.InsertHtml(output);
            //Thêm hay Sửa????
            //Insert or Update to FCKEditor
            if (!isNew) {
		        // Trường hợp Update
		        if (oSel != null) 
		        {
		            oSel = oSel.parentNode;//<td>
		            oSel = oSel.parentNode;
		            oSel = oSel.parentNode;
		            oSel = oSel.parentNode;
			        oSel.parentNode.removeChild(oSel);
			        FCK.InsertHtml(output);
		        }
	        } 
	        else {
	            //Trường hợp Insert
		        FCK.InsertHtml(output);
	        }
            return true;
        }
        function randomString() {
	        var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	        var string_length = 5;
	        var randomstring = '';
	        for (var i=0; i<string_length; i++) {
		        var rnum = Math.floor(Math.random() * chars.length);
		        randomstring += chars.substring(rnum,rnum+1);
	        }
            return randomstring;
        }
        
        function getSelected()
        {
            oSel = null;
	        oSel = FCK.Selection.GetParentElement();
	        if (oSel != null && oSel.id.search('_vp') == -1)
	        {//Thử lại một lần
	            oSel = oSel.parentNode;
	        }
	        if (oSel != null && oSel.id.search('_vp') != -1)
	        {
	            //Phân tích chuỗi để lấy ra các Properties cần thiết như Url, Width, Height, Space
	            //oSel = oSel.parentNode;
	            for (i=0; i < oSel.childNodes.length;i++)
	            {
	                if (oSel.childNodes.item(i).nodeName=='DIV')
	                {
	                    var oC = oSel.childNodes.item(i).innerHTML.split(';');
	                    for (var o = 0; o < oC.length; o++)
	                    {
	                        var tmp = oC[o].split('=');
	                        switch(tmp[0])
                            {
                                case 'width':
                                    width.value = tmp[1];
                                    break;
                                case 'height':
                                    height.value = tmp[1];
                                    break;
                                case 'url':
                                    url.value = tmp[1];
                                    break;
                                case 'space':
                                    space = tmp[1];
                                    break;
                            }//switch
	                    }//for
	                    isNew = false;
	                }//if
	            }//for
	        }//if
        }
        function init()
        {
            getSelected(); //Gọi hàm getSelected để lấy ra Element đang chọn
            //nếu có và kiểm tra xem Element đang chọn có phải là Element do Plugin Media tạo ra
        }
    </script>
</body>
</html>
